/*
 * Copyright (c) 2016-2017 fulihui.com All right reserved
 * Project: information-core-170307
 * File name: CategoryStatisticsDB.java
 */

package com.fulihui.information.core.db;

/**
 * @author Willard.Hu on 2017/2/16 0016.
 */
public interface CategoryStatisticsDB {

    enum StatisticType {READ_TIMES, UPVOTE, DOWNVOTE, SHARED_TIMES, COMMENT_TIMES, STAR_TIMES}

    /**
     * 类目统计项自增
     *
     * @param categoryCode 类目代码
     * @param type         统计项类型
     * @return 自增后的值
     */
    long incr(String categoryCode, StatisticType type);

    /**
     * 重置类目统计项
     *
     * @param categoryCode 类目代码
     * @return 操作结果
     */
    boolean reset(String categoryCode);

    /**
     * 获取类目统计向数值
     *
     * @param categoryCode 类目代码
     * @param type         统计项类型
     * @return 数值
     */
    long get(String categoryCode, StatisticType type);
}
